package Utils.word;

/**
 * Created by 隼 on 2017/6/2.
 */

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.util.List;

/**
 * itext工具类
 *
 * @author sunny
 *
 */
public final class ItextUtil {

    /**
     * 获取一个pdf文档
     */
    public static void getPDF(List<?> list) throws Exception {
        // 创建一个itext文档,A4大小
        Document document = new Document();
        // 创建一个pdf文档流

        PdfWriter pfdWriter = PdfWriter.getInstance(document,
                new FileOutputStream(new File("C:\\Users\\隼\\Desktop\\test.pdf")));
        // 添加中文信息
        BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
                "UniGB-UCS2-H", false);
        Font fontCN = new Font(bfChinese);

        // 为文档设置密码,加密需要bcprov-jdk15on,密码user
//        pfdWriter.setEncryption("user".getBytes(), "user".getBytes(),
//                PdfWriter.ALLOW_SCREENREADERS,
//                PdfWriter.STANDARD_ENCRYPTION_128);
        // 打开pdf文档
        document.open();
        // 添加meta,点击属性可以看见
        document.addAuthor("Rainbow Chen");
        document.addCreator("Rainbow Chen");
        document.addTitle("Itext测试用例");
        document.addSubject("itext");
        document.addCreationDate();
        document.addKeywords("Java,PDF,Itext");
        // 添加header,点击属性可以看见
        document.addHeader("blog", "XXXXXX");
        document.addHeader("sina", "XXXXXX");
        document.addHeader("weblog", "XXXXXX");
        document.addHeader("mail", "XXXXXX");

        // 添加 添加一个pdf list,true表示可以排序
        com.itextpdf.text.List pdfList = new com.itextpdf.text.List(false, 20);
        // 设置序号样式,似乎不支持中文字符
        pdfList.setListSymbol(new Chunk("P", FontFactory.getFont(
                FontFactory.HELVETICA, 20)));
        pdfList.add(new ListItem("第一章", fontCN));
        pdfList.add(new ListItem("第二章", fontCN));
        pdfList.add(new ListItem("第三章", fontCN));

        document.add(pdfList);

        // 添加一个table,中文设置比较麻烦
        PdfPTable table = new PdfPTable(3);
        table.setSpacingBefore(130f);// 设置表格上面空白宽度
        table.setTotalWidth(535);// 设置表格的宽度
        table.setLockedWidth(true);// 设置表格的宽度固定
        PdfPCell cell;
        cell = new PdfPCell(new Paragraph("姓名", fontCN));
        table.addCell(cell);
        cell = new PdfPCell(new Paragraph("性别", fontCN));
        table.addCell(cell);
        cell = new PdfPCell(new Paragraph("年龄", fontCN));
        table.addCell(cell);
        for (int i = 0; i < list.size(); i++) {
            Student stu = (Student) list.get(i);
            table.addCell(stu.getName());
            table.addCell(stu.getGendar());
            table.addCell(stu.getAge());
        }
        document.add(table);

        document.add(new Paragraph("一个简单的itext demo.", fontCN));

        document.close();

    }
}
